<?php
namespace app\model\lawcase;

use app\model\BaseModel;

/**
 * 案件当事人模型
 * 对应数据库表: oa_lawcase_party (案件当事人表)
 */
class LawcaseParty extends BaseModel
{
    // 设置表名（不包含前缀）
    protected $name = 'lawcase_party';
    
    // 设置主键
    protected $pk = 'id';
    
    // 设置字段类型
    protected $type = [
        'case_id' => 'integer',
        'party_id' => 'integer',
        'is_client' => 'integer',
        'relationship' => 'integer',
        'create_time' => 'int',
        'update_time' => 'int'
    ];

    // 可搜索字段
    protected $searchField = [
        'case_id',
        'party_id',
        'is_client',
        'relationship'
    ];
    
    /**
     * 获取法律关系文本
     * @param mixed $relationship 法律关系代码（可以是整数或字符串）
     * @return string 法律关系文本
     */
    public static function getRelationshipText(mixed $relationship): string
    {
        // 确保参数是整数类型
        $relationship = (int)$relationship;
        
        $relationships = [
            0 => '未知',
            1 => '原告',
            2 => '被告',
            3 => '第三人',
            4 => '上诉人',
            5 => '被上诉人',
            6 => '再审申请人',
            7 => '再审被申请人',
            8 => '申请执行人',
            9 => '被申请执行人'
        ];
        
        return $relationships[$relationship] ?? '未知';
    }
    
    /**
     * 根据案件ID获取所有当事人
     * @param int $caseId 案件ID
     * @return array 当事人列表
     */
    public static function getPartiesByCaseId(int $caseId): array
    {
        return self::where(['case_id' => $caseId, 'delete_time' => 0])
            ->select()
            ->toArray();
    }
}